
Striving
Striving is a web platform designed to turn an initial software idea into a structured, documented, and collaborative project.
The project explores how project planning, feature architecture, source control, documentation, collaboration, and AI-assisted development can be brought together into a single workflow.
The repository describes Striving as an open-source project creation application built with TypeScript and Next.js that integrates with GitHub. Its underlying project model connects users, GitHub repositories, members, features, commits, pull requests, documentation, and user-facing manuals.
Live Site → · GitHub Repository →
Project Workflow
Striving is built around a progression from an initial idea towards a complete software project:
Idea → Project → Features → Documentation / Manuals → Implementation → Publish
The intention is to make the structure of a project explicit from the beginning.
A project contains its associated users and collaborators, a linked GitHub repository, a collection of features, and its documentation. Features can themselves track implementation state and references back to GitHub activity.
Project Architecture
At the centre of Striving is a structured Project model.
A project can contain:
- An owner and associated users
- Collaborators / members
- A linked GitHub repository
- Features
- Documentation
- A user-facing manual
This creates a single representation of the project while still relying on external services such as GitHub for source control rather than attempting to duplicate their functionality.
Feature Architecture
Features are treated as first-class objects within a project rather than simply being informal tasks.
The repository history shows the feature system developing to support recursive feature relationships, allowing features to be organised hierarchically. Development also introduced feature creation and editing, project feature pages, and support for mapping documentation and wiki content against the feature structure.
This allows a large software project to be broken down into increasingly specific pieces of functionality while preserving the relationship between those pieces.
GitHub Integration
GitHub is a central part of the Striving workflow.
The platform does not attempt to replace GitHub’s source-control functionality. Instead, it maintains references to GitHub repositories, commits, pull requests, and related project activity.
The project model was explicitly designed around this distinction: GitHub remains responsible for version control while Striving provides the higher-level project structure around it.
The repository history includes functionality for automatically listing GitHub repositories, displaying authenticated repositories, integrating GitHub API routes, creating project items associated with implementation status, and eventually enabling an AI-assisted GitHub workflow.
Feature Implementation Tracking
Features can represent more than planned functionality.
The project model includes references to commits and pull requests, alongside states representing how far a feature has progressed through implementation or whether it has been abandoned.
This creates a connection between:
Feature → Implementation → Commit / Pull Request
rather than leaving the project’s intended architecture disconnected from its actual codebase.
Documentation
Documentation is treated as part of the project structure.
The platform developed dedicated functionality for project documentation, including documentation-section routes, creation and display interfaces, and later support for Markdown-based editing.
The repository distinguishes between developer-focused documentation and more general project information, with the Manual model acting as a broader storage space for user-facing project information and the features that make up the project.
Manuals
A significant part of the later development was the separation between technical documentation and a user-facing manual.
The project was originally using terminology around a wiki, but this was later renamed to manual, alongside a wider refactor of the project structure and route-dependent functionality.
This distinction allows a project to maintain developer-oriented technical material while separately presenting information intended for users or collaborators.
Markdown Editing
The documentation and manual systems were eventually moved towards Markdown-based editing.
The repository contains commits introducing Markdown editors, Markdown support for manuals and documentation, and Markdown support on project pages.
This provides a flexible way to represent structured project information while avoiding a rigid content format.
AI-Assisted Development
One of the major areas explored by Striving is the integration of large language models into the software-development workflow.
The repository history shows the development of a dedicated LLM area, followed by support for LLM-generated code, improved AI interactions, and integration between the AI workflow and GitHub repository functionality.
This culminated in functionality allowing an LLM to automatically generate code that could then be added to a GitHub repository.
The project therefore explores an interaction model where project structure can provide context for AI-assisted implementation rather than treating an LLM as an isolated chat interface.
AI and GitHub
The AI functionality is closely connected to the project’s GitHub integration.
The development history includes a dedicated GitHub repository creation page within the LLM route, a web-based IDE with commit functionality, and functionality for sending generated code to GitHub.
This creates a workflow closer to:
Plan → Generate → Review → Commit
rather than simply producing code as text for a developer to manually copy elsewhere.
Collaboration
Projects contain users and members, with the platform providing functionality for displaying and managing contributors.
The repository history includes contributor-management functionality alongside project-user API routes and project ownership behaviour.
This reflects the larger objective of treating software development as a collaborative process where project structure, implementation, documentation, and contributors are represented together.
Project Management
The application also provides project-management functionality around the underlying software structure.
The repository history includes project creation, project listing, individual project pages, Kanban-style project views, item creation, and status changes.
This allows development progress to be represented independently from GitHub’s own issue and project-management tooling while still maintaining references to the actual implementation.
External Service Integrations
During development, Striving also explored integrations with external services beyond GitHub.
The repository includes work around:
- GitHub
- Google Calendar
- Gmail
- Spotify
The project experimented with reusable interfaces and API-backed integrations for these services, including calendar events, email rendering, GitHub repository browsing, and Spotify playback.
These integrations formed part of the broader exploration of bringing external developer and productivity tools into a single application.
Authentication
Authentication was implemented early in the project’s development.
The repository history includes GitHub authentication, Google sign-in, custom sign-in and sign-out pages, protected routes, and automatic token refresh.
This provided the foundation for associating projects, GitHub repositories, collaborators, and other application data with individual users.
Database Architecture
The initial project concept used MongoDB and Mongoose models for users, projects, features, manuals, and documentation.
The project later evolved its database implementation, with the repository history showing a move towards a database provider using Neon and Drizzle.
This evolution reflects one of the project’s recurring themes: the architecture was actively refactored as the application’s requirements and structure developed.
UI and Application Architecture
The interface underwent substantial refactoring during development.
The repository history includes a site-wide visual refactor, a transition to Headed UI components, reusable UI components, route-dependent contexts and providers, improved project pages, and refinements to documentation and manual editors.
Later development also introduced recursive project structures, pagination, improved editing interfaces, and more structured project navigation.
Development Evolution
Striving changed significantly during its development period.
The first commit on the main branch was made on July 16, 2025, starting from a Next.js application scaffold.
From there, the project progressed through authentication and external service integrations before developing into its core project-management architecture. Project creation, features, documentation, GitHub integration, contributor management, AI functionality, Markdown editing, and the manual system were added progressively through August and early September.
The latest commits currently visible in the repository history are dated September 10, 2025, including reduced-scope Google Calendar functionality and further authentication changes.
Technical Details
Framework: Next.js Language: TypeScript Database: MongoDB / later Neon with Drizzle AI: Large Language Models Authentication: Auth-based provider integrations Version Control: GitHub integration Documentation: Markdown-based project documentation and manuals Project Structure: Projects, features, collaborators, documentation, manuals AI Workflow: LLM-assisted code generation and GitHub integration External Integrations: GitHub, Google Calendar, Gmail, Spotify Application Type: Full-stack web application
Project Outcome
Striving is an exploration of how the different parts of software development can be connected into a single project lifecycle.
The application combines project structure, feature architecture, implementation tracking, GitHub integration, documentation, manuals, collaboration, authentication, external services, and AI-assisted development.
Its most interesting aspect is the attempt to maintain a relationship between what a project is supposed to contain and what is actually being implemented. Features provide the planned structure, while commits and pull requests provide references back to the real development process.
This makes Striving less of a conventional project-management tool and more of an experiment in building a structured environment around the entire software-development lifecycle.
Development Period
July 16, 2025 – September 10, 2025
Full-stack software engineering project