Published on
Project Duration: Jul 16 2025 – Sep 10 2025

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