{"id":15136733,"url":"https://github.com/sbis04/slibro","last_synced_at":"2025-08-19T09:10:19.130Z","repository":{"id":121353239,"uuid":"374044262","full_name":"sbis04/slibro","owner":"sbis04","description":"Platform for story writers and publishing houses","archived":false,"fork":false,"pushed_at":"2022-05-12T21:00:51.000Z","size":3297,"stargazers_count":31,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-06T16:40:32.247Z","etag":null,"topics":["appwrite","flutter","markdown"],"latest_commit_sha":null,"homepage":"https://dev.to/sbis04/slibro-a-story-writing-platform-4oll","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sbis04.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-06-05T07:00:38.000Z","updated_at":"2023-12-14T06:20:28.000Z","dependencies_parsed_at":null,"dependency_job_id":"236b3b07-bd7a-49fe-91fd-df7cc9fbf49e","html_url":"https://github.com/sbis04/slibro","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sbis04/slibro","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sbis04%2Fslibro","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sbis04%2Fslibro/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sbis04%2Fslibro/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sbis04%2Fslibro/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sbis04","download_url":"https://codeload.github.com/sbis04/slibro/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sbis04%2Fslibro/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271128646,"owners_count":24703879,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-19T02:00:09.176Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["appwrite","flutter","markdown"],"created_at":"2024-09-26T06:40:59.358Z","updated_at":"2025-08-19T09:10:19.089Z","avatar_url":"https://github.com/sbis04.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Slibro [![Codemagic build status](https://api.codemagic.io/apps/6240c24a66f743ede7aca591/android-workflow/status_badge.svg)](https://codemagic.io/apps/6240c24a66f743ede7aca591/android-workflow/latest_build)\n\n![](screenshots/slibro-dev-cover.png)\n\n**Slibro** is a story writing platform that supports short and long format stories. [Flutter](https://flutter.dev/) and [Appwrite](https://appwrite.io/) is used to create this amazing cross-platform experience.\n\n\u003e Try out the app on Android from [here](https://appdistribution.firebase.dev/i/3fc14b5839069d3c).\n\n![](screenshots/slibro-cross-platform-2.png)\n\n## Usage\n\nTo run this from your system, you should have:\n\n1. [Flutter SDK](https://docs.flutter.dev/get-started/install) installed and configured on your system.\n2. Setup Appwrite using Docker.\n3. Host the server locally using [ngrok](https://ngrok.com/).\n4. Under `lib` directory, create a `secret.dart` file, and add the server URL and Appwrite project ID to it. Example:\n\n    ```dart\n    class Secrets {\n      static String hostname = 'https://127b-203-163-244-125.in.ngrok.io/v1';\n      static String projectID = '6276341092e81e829ab0';\n    }\n    ```\n5. Run using the following command:\n\n   ```sh\n   flutter run\n   ```\n\n## App Overview\n\nThe app now has full-fledged **story editor** (rich text - markdown), **story reader**, and **story management system** (to manage published/unpublished stories and explore other publisher's stories).\n\nSome glimpses of Slibro's user interface are as follows:\n\n![Slibro Auth Screens](screenshots/slibro-auth-screens.png)\n\nThe above four screens cover the authentication flow on the app using email/password method. These screens help a user to either create a new account or login using an existing account. Once a user signs up to the app, it navigates to the story creation flow.\n \n![Slibro Story Detail Screens](screenshots/slibro-screens-2.png)\n\nThese screens help a user to create the first story as a draft in the Slibro app. The user can also publish the story if wanted.\n\n![Slibro Editor and Reader Screens](screenshots/slibro-screens-3.1.png)\n\nThe editor and the reader screens are the most important ones, the editor also has rich text support using Markdown.\n\n![Slibro Dashboard Screens](screenshots/slibro-screens-4.png)\n\nThe three screens (Home, My Stories, and My Profile) shown above are part of the dashboard of the app, user can navigate to any of these using the Navigation bar accessible from these pages.\n\nNavigation bar has a subtle animation to improve the UX of the app:\n\n![Navigation bar animation](screenshots/navbar-anim.gif)\n\n## Appwrite APIs\n\nThree of the major Appwrite APIs are used:\n\n* [Account API](https://appwrite.io/docs/client/account?sdk=flutter-default): Used for implementing user authentication and user data management.\n* [Database API](https://appwrite.io/docs/client/database?sdk=flutter-default): Used for storing app data related to stories and chapters.\n* [Storage API](https://appwrite.io/docs/client/storage?sdk=flutter-default): Used for storing the Rich Text story file in JSON format.\n\n## Flutter packages\n\nThe following Flutter packages are used to build this app:\n\n* [appwrite](https://pub.dev/packages/appwrite)\n* [flutter_quill](https://pub.dev/packages/flutter_quill)\n* [path_provider](https://pub.dev/packages/path_provider)\n* [shared_preferences](https://pub.dev/packages/shared_preferences)\n* [google_nav_bar](https://pub.dev/packages/google_nav_bar)\n* [tuple](https://pub.dev/packages/tuple)\n\n## License\n\nCopyright 2022 Souvik Biswas\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsbis04%2Fslibro","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsbis04%2Fslibro","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsbis04%2Fslibro/lists"}