• This repository has been archived on 27/Jun/2022
  • Stars
    star
    248
  • Rank 158,350 (Top 4 %)
  • Language
    JavaScript
  • Created about 12 years ago
  • Updated almost 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Your open-source talks place.

Ost.io

Ost.io ("open-source talks") is a forum for open-source projects and the best place for discussing project stuff with other users. It is tightly integrated with GitHub. The main ostio mission is to replace mailing lists.

Ost.io apps are TodoMVC-like set of example applications, which hopes to offer more complex apps.

We think example app should be:

  1. Real-world. Ost.io support forum will be self-hosted. Ost.io is already used by popular open-source projects.
  2. Complex. TodoMVC is simple, but does not show advanced framework features.
  3. Useful besides its main purpose.

There are currently two main examples of ostio apps:

  • React + Exim implementation from 2016. Very useful if you'd love to know how to make real-world apps with React.
  • Backbone + Chaplin app. This is the first and initial app, made in 2012.

Features

Features we initially feel it should capture:

  • Multi-view
  • Multi-level hierarchies, modals
  • Captures CRUD
  • Authentication, session management
  • Register, login, logout
  • Demonstrates github login
  • Uses a dedicated backend for data
  • State management / routing
  • Precompiled templates
  • Sub-views
  • Mobile support
  • Animations

Examples

For initial launch, we need at least three apps.

You may pick any stack you want. Just stick to the look-and-feel specification. Though we suggest to use Bower for dependency management and Mocha for tests.

Any transpiled languages (coffee, typescript, elm) are very welcome.

For list of current implementations, see apps/ directory.

Specification

Feel free to submit any proposals.

Structure

Develop your application in your own repository and send us a pull request that will add git submodule to apps directory.

For example, if you’re making angular app built with Grunt, send us angular-grunt submodule.

General

See http://ost.io for general example of how app should behave. Source: https://github.com/paulmillr/ostio.

  • UX: Must look exactly the same. Try to reuse existing styles. Box-sizing: border-box must be used for simplicity of calculations.

  • Compatibility: IE9+, modern Firefox, Chrome, Safari (including mobile)

  • Structure: Files in app dir, libs in vendor dir unless other is specified by your framework.

  • Routing: Required, with pushState. Routes:

    • / β€” home page. Contains description text.
    • /auth-callback β€” endpoint for OAuth redirection.
    • /feed β€” feed, contains last users and posts.
    • /settings β€” user settings.
    • /@:login β€” user page. Contains user info, repos and organisations.
    • /@:login/:repo β€” repository page. Contains current repo topics with their stats.
    • /@:login/:repo/topics/:topic β€” topic page. Contains topic posts.

Common

API & Auth

App plays with OAuth REST API at http://api.ost.io (source: https://github.com/paulmillr/ostio-api). App must have a simple way [in code] to switch between API endpoints. Auth token must be stored in local storage. No cookies.

// we should likely also provide backend specification for people who want to show how it can be alternatively done with their stack

Header

Located on top of application. Contains link to home, feed.

If logged-in, also contains links to current user with his name, settings and logout.

When clicked on logout, the app should destroy the session. If user was on settings page, he must be redirected to /. On any other page user must not be redirected.

Otherwise, contains login button. Must have its own persistent view.

Breadcrumbs

Located under the header, on user, repository or topic pages. Example for topic page:

[:user avatar] :user / :repo / #:number. Must have its own persistent view.

Spinners

When creating new post or topic, button that was pressed by user must change its state and its contents must turn into spinner.

Pages

Home

Contains description of an application, description of taste.js project, links to frontend and backend implementations and api docs. Also, top repos and screenshot of users page.

Auth callback

A page to which oauth authentication redirects. Receives credentials (access token & current user).

Logout

Destroys current session, clears local storage. Must be done without page reloading.

Feed

24 latest users. Just their avatars with links to them.

20 latest posts. Each post has:

  • user avatar with link to user

  • username also with link to user

  • a repo and topic where it was posted

  • post date

  • contents

  • edit and delete buttons if it’s written by current user or in a current user repository or in repository of organization that current user is in.

Settings

A simple page with switches, radio buttons etc. Clicking on switch immediately submits API request.

User

Repositories list (also, GitHub icon with link to GitHub profile)

Organizations list (just avatars with links)

If it’s current user or organization that current user is in, also has "Sync GitHub repos" button which updates repositories list.

Repository

Topics list. Each topic has:

  • Number (#35 etc) with link to topic

  • Topic name with link to topic

  • Topic author

  • Date

  • Post count

Also has GitHub icon with link to repository on GitHub.

Topic

Topic name, then posts (see feed) and new post form. Posts must be without post location, unlike in feed.

Links

Example app: http://ost.io/

Frontend source code: https://github.com/paulmillr/ostio

Backend source code: https://github.com/paulmillr/ostio-api

Building an app with Ember: http://www.youtube.com/watch?v=Ga99hMi7wfY

Support for complex nested hierarchies: http://stackoverflow.com/questions/12863663/angularjs-complex-nesting-of-partials-and-templates

Runnable Ember app spec: http://www.youtube.com/watch?v=heK78M6Ql9Q

Jasmine tactics screencast: http://searls.testdouble.com/posts/2013-03-21-jasmine-tactics-screencast.html

More Repositories

1

chokidar

Minimal and efficient cross-platform file watching library
JavaScript
10,550
star
2

es6-shim

ECMAScript 6 compatibility shims for legacy JS engines
JavaScript
3,119
star
3

encrypted-dns

DNS over HTTPS config profiles for iOS & macOS
2,885
star
4

dotfiles

Colourful & robust configuration files and utilities for Mac, Linux & BSD
Shell
1,182
star
5

exoskeleton

Faster and leaner Backbone for your HTML5 apps
JavaScript
882
star
6

noble-secp256k1

Fastest 4KB JS implementation of secp256k1 signatures and ECDH
JavaScript
695
star
7

noble-curves

Audited & minimal JS implementation of elliptic curve cryptography.
TypeScript
588
star
8

noble-hashes

Audited & minimal JS implementation of hash functions, MACs and KDFs.
JavaScript
468
star
9

console-polyfill

Browser console methods polyfill.
JavaScript
433
star
10

noble-ed25519

Fastest 4KB JS implementation of ed25519 signatures
JavaScript
388
star
11

readdirp

Recursive version of fs.readdir with streaming api.
JavaScript
376
star
12

top-github-users

GitHub top-1000 generation script
CoffeeScript
262
star
13

noble-bls12-381

DEPRECATED. Use noble-curves instead. Fastest JS implementation of BLS12-381.
TypeScript
197
star
14

code-style-guides

Idiomatic, widely-used code style guides for various programming languages.
163
star
15

micro-eth-signer

Minimal library for Ethereum transactions, addresses and smart contracts.
JavaScript
148
star
16

noble-ciphers

Auditable & minimal JS implementation of Salsa20, ChaCha and AES
TypeScript
140
star
17

scaffolt

Dead-simple JSON-based scaffolder.
JavaScript
127
star
18

scure-btc-signer

Audited & minimal library for creating, signing & decoding Bitcoin transactions.
JavaScript
118
star
19

scure-bip39

Secure, audited & minimal implementation of BIP39 mnemonic phrases
TypeScript
108
star
20

async-each

No-bullshit, ultra-simple, 40-lines-of-code async parallel forEach / map function for JavaScript.
JavaScript
105
star
21

qr

Minimal node.js & browser QR Code Pattern reader and generator
JavaScript
96
star
22

scure-base

Secure, audited & 0-deps implementation of bech32, base64, base32, base16 & base58
JavaScript
91
star
23

ostio-api

Your open-source talks place. Rails backend.
Ruby
71
star
24

tx-tor-broadcaster

CLI utility that broadcasts BTC, ETH, SOL, ZEC & XMR transactions through TOR using public block explorers
JavaScript
65
star
25

micro-web3

Typesafe Web3 with minimum deps: call eth contracts directly from JS. Batteries included
TypeScript
59
star
26

scure-starknet

Audited & minimal JS implementation of Starknet cryptography.
JavaScript
59
star
27

native-notifier

Use native system notifications in node.js without third-party libraries
JavaScript
56
star
28

scure-bip32

Secure, audited & minimal implementation of BIP32 hierarchical deterministic (HD) wallets.
TypeScript
50
star
29

chieftain

New generation imageboard. Built with Python / Django.
Python
50
star
30

micro-sol-signer

Create, sign & decode Solana transactions with minimum deps
JavaScript
46
star
31

loggy

Colorful stdstream dead-simple logger for node.js.
JavaScript
42
star
32

Array.prototype.find

Simple ES6 Array.prototype.find polyfill for older environments.
JavaScript
37
star
33

noble-post-quantum

Auditable & minimal JS implementation of public-key post-quantum cryptography
TypeScript
37
star
34

micro-otp

One Time Password generation via RFC 6238
JavaScript
33
star
35

pushserve

Dead-simple pushState-enabled command-line http server.
JavaScript
32
star
36

LiveScript.tmbundle

A TextMate, Chocolat and Sublime Text bundle for LiveScript
Python
30
star
37

micro-packed

Define complex binary structures using composable primitives
TypeScript
29
star
38

jage

age-encryption.org tool implementation in JavaScript
TypeScript
29
star
39

read-components

Read bower and component(1) components
JavaScript
28
star
40

mnp

My new passport
JavaScript
28
star
41

ed25519-keygen

Generate ed25519 keys for SSH, PGP (GPG), TOR, IPNS and SLIP-0010 hdkey
TypeScript
27
star
42

micro-bmark

Benchmark your node.js projects with nanosecond resolution.
JavaScript
27
star
43

Array.prototype.findIndex

Simple ES6 Array.prototype.findIndex polyfill for older environments.
JavaScript
26
star
44

github-pull-req-stats

Stats from GitHub repos about accepted / closed pull requests.
JavaScript
24
star
45

micro-aes-gcm

0-dep wrapper around webcrypto AES-GCM. Has optional RFC 8452 SIV implementation.
JavaScript
24
star
46

steg

Simple and secure steganography
TypeScript
21
star
47

micro-ordinals

Minimal JS library for ordinals and inscriptions on top of scure-btc-signer
JavaScript
21
star
48

nip44

NIP44 spec and implementations of encrypted messages for nostr
Go
20
star
49

papers

Papers i've read and / or wanted to save
17
star
50

noble-ripemd160

Noble RIPEMD160. High-security, easily auditable, 0-dep, 1-file hash function
TypeScript
17
star
51

tag-shell

Use ES6 template tags for your node.js shell commands.
JavaScript
16
star
52

micro-password-generator

Utilities for password generation and estimation with support for iOS keychain
TypeScript
16
star
53

micro-should

Simplest zero-dependency testing framework, a drop-in replacement for Mocha.
JavaScript
16
star
54

micro-promisify

Convert callback-based JS function into promise. Simple, 10LOC, no deps.
JavaScript
16
star
55

bls12-381-keygen

BLS12-381 Key Generation compatible with EIP-2333.
TypeScript
15
star
56

micro-base58

Fast and beautiful base58 encoder without dependencies.
TypeScript
15
star
57

lastfm-tools

Last.FM data reclaimer (backuper, helper and analyzer).
Ruby
14
star
58

micro-ed25519-hdkey

Minimal implementation of SLIP-0010 hierarchical deterministic (HD) wallets
JavaScript
14
star
59

fetch-streaming

Simple XMLHTTPRequest-based `fetch` implementation for streaming content.
JavaScript
13
star
60

unicode-categories

ECMAscript unicode categories. Useful for lexing.
12
star
61

micro-ftch

Tiny optimized `fetch()`-like node.js and browser method with binary/JSON, CORS, redirects & SSL pinning
JavaScript
10
star
62

noble.py

Noble cryptographic libraries in Python. High-security, easily auditable, 0-dep pubkey, scalarmult & EDDSA.
Python
9
star
63

argumentum

No-bullshit option parser for node.js.
JavaScript
8
star
64

micro-es7-shim

No-bullshit super-simple es7 collections shim for Array#includes, Object.values, Object.entries
JavaScript
7
star
65

quickly-copy-file

Quickly copy file from one path to another. No bullshit, ultra-simple, async and just one dep.
JavaScript
6
star
66

microtemplates

John Resig's micro-templates aka underscore templates. No-bullshit and small
JavaScript
6
star
67

micro-ff1

Format-preserving encryption algorithm (FPE-FF1) specified in NIST Special Publication 800-38G.
TypeScript
5
star
68

popular-user-agents

Regularly updated list of popular user agents aka browser versions
JavaScript
5
star
69

eth-vectors

Comprehensive official vectors for ETH
JavaScript
5
star
70

roy.tmbundle

Roy TextMate, Chocolat & Sublime Text 2 bundle
5
star
71

backup

Backup of all my projects in a single signed file
JavaScript
4
star
72

paulmillr

4
star
73

jsbt

Build tools for js projects. Includes tsconfigs, templates and CI workflows
JavaScript
4
star
74

qr-code-vectors

QR Code test vectors
Python
3
star
75

aesscr

Use AES-256-GCM + Scrypt to encrypt files.
JavaScript
3
star
76

universal-path

Cross-platform universal node.js `path` module replacement that works better with Windows
JavaScript
2
star
77

fcache

fs.readFile cache for node.js build systems & watchers
JavaScript
2
star
78

rn-bigint

Java
1
star
79

packed

https://github.com/paulmillr/micro-packed
1
star
80

paulmillr.github.io

JavaScript
1
star