biswodip.← All projects
04 / Web · Windows · AndroidFull-Stack Software Engineer (Sole Developer)

Nexora

Cross-platform project and task management workspace running across Web, Windows desktop and Android.

01 / The Problem & Analysis

Knowledge workers juggle disconnected tools across desktop, web, and mobile, suffering from context switching and desynchronized project state.

02 / Engineering & BA Role

Full-Stack Software Engineer (Sole Developer)

03 / Outcome

Shared application code supports Web, Windows desktop and Android builds.

Overview

Nexora is a project and task workspace designed to run across web, Windows desktop and Android from a single TypeScript core.

What I built

Architected a shared TypeScript core and state machine, unifying board and list interfaces across Next.js (web), Electron (Windows), and Capacitor (Android).

Product Interface

nexora-xi-rust.vercel.app
Live
Nexora real application interface from the deployed site

Engineering Decisions

Share the application

What
A TypeScript application supports multiple platforms.
Why
Project and task workflows should remain familiar across devices.
How
Next.js and React provide the application, with Electron for Windows and Capacitor for Android.

Offer different task views

What
Projects include boards and list views alongside personal tasks.
Why
Planning a project and checking individual tasks are different activities.
How
The interface presents application state through the relevant task view.

Support keyboard navigation

What
Users can navigate with a command palette.
Why
Frequent actions should be easy to reach from the keyboard.
How
A shared navigation interface exposes workspace actions.

Data Architecture & Schema

The workspace organizes projects and their tasks, with personal tasks as another workflow. Application state connects the board and list interfaces to the underlying project information.

workspace_id
UUID · Unified workspace tenant boundary
project_id
UUID · Agile sprint or milestone grouping
task_id
UUID · Individual task or user story item
priority
TEXT · low / medium / high / urgent
status
TEXT · backlog / in_progress / in_review / done
assigned_to
UUID · Assigned collaborator user identifier
updated_at
TIMESTAMPTZ · Real-time sync timestamp
tags
TEXT[] · Custom workspace category labels

API & System Workflow

The shared application connects workspace views to the project’s data operations. Platform wrappers provide desktop and Android delivery around that application.

  1. Shared TypeScript
  2. Web / Windows / Android
  3. Board & Task State
  4. Cross-Platform Sync

End-to-end system lifecycle

Representative Implementation

Cross-platform state sync · Multi-tenant workspace task update. Excerpt from the repository source.

src/actions/tasks.tsTypeScript
// Workspace multi-tenancy state update & validation
export async function updateTaskStatus(taskId: string, status: TaskStatus) {
  const session = await auth();
  if (!session?.user?.id) throw new UnauthorizedError("Authentication required");
  return await prisma.task.update({
    where: { id: taskId, workspace: { members: { some: { userId: session.user.id } } } },
    data: { status, updatedAt: new Date() }
  });
}
Cross-platform state sync · Multi-tenant workspace task update
Read file on GitHub

Interface & Features

Project boards, list views and personal tasks give the shared application its main working surfaces.

  • Project boards and list views
  • Personal task management
  • Keyboard-driven navigation
  • Web, Windows and Android

Technology Stack

  • Next.js
  • TypeScript
  • React
  • Electron
  • Capacitor

Next.js · TypeScript · React · Application state · Cross-platform development · Desktop application development · Android application development

Source Repositories

Open GitHub repository

Live Deployment

Run Nexora